package com.clyme.expediente.servicios;

import com.clyme.expediente.dao.EtapaDao;
import com.clyme.expediente.daoImpl.EtapaDaoImpl;
import com.clyme.expediente.entidad.Especialista;
import com.clyme.expediente.entidad.Etapa;
import com.clyme.expediente.hibernate.HibernateConexion;
import com.clyme.expediente.utilitarios.IConexion;
import com.clyme.expediente.utilitarios.Utilitario;
import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author Luis Alonso Ballena Garcia
 */
public class EtapaServicio {

    IConexion conexion;
    EtapaDao<Etapa> daoEtapa;

    public EtapaServicio() {
        conexion = new HibernateConexion();
        daoEtapa = new EtapaDaoImpl(conexion);
    }
    
    public Etapa obtenerEtapa(Integer id)
    {
        conexion.beginConexion();
        Etapa etapa = daoEtapa.buscarPorId(Etapa.class, id);
        conexion.closeConexion();
        return etapa;
    }

    public void registrarEtapa(Etapa etapa) {
        etapa.setHabilitado(Short.valueOf("1"));
        conexion.beginTransaccion();
        daoEtapa.agregar(etapa);
        conexion.closeTransaccion();
        Utilitario.enviarMensajeGlobalValido("Se ha registrado correctamente");
    }

    public void actualizarEtapa(Etapa etapa) {
        conexion.beginTransaccion();
        daoEtapa.actualizar(etapa);
        conexion.closeTransaccion();
        Utilitario.enviarMensajeGlobalValido("Se ha actualizado correctamente");
    }

    public void eliminarEtapa(Etapa etapa) {
        etapa.setHabilitado(Short.valueOf("0"));
        conexion.beginTransaccion();
        daoEtapa.actualizar(etapa);
        conexion.closeTransaccion();
        Utilitario.enviarMensajeGlobalValido("Se ha eliminado correctamente");
    }

    public List<Etapa> obtenerTodos() {
        List<Etapa> etapas = new ArrayList<Etapa>();
        conexion.beginConexion();
        etapas = daoEtapa.obtenerTodosActivos(Etapa.class);
        conexion.closeConexion();
        return etapas;
    }

}
